// 1232. 缀点成线/简单/dx1*dy2=dy1*dx2
// https://leetcode.cn/problems/check-if-it-is-a-straight-line/
// 给定一个数组 coordinates ，其中 coordinates[i] = [x, y] ，
// [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断，
// 这些点是否在该坐标系中属于同一条直线上。

#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
  bool checkStraightLine(vector<vector<int>>& vvCo) {
    vector<vector<int>> vvDi;
    for(size_t i=0; i<vvCo.size()-1; i++) {
      vvDi.push_back({vvCo[i+1][0] - vvCo[i][0],
               vvCo[i+1][1] - vvCo[i][1]});
    }
    for(size_t i=0; i<vvDi.size()-1; i++) {
      // dx1 * dy2 = dy1 * dx2;
      if( vvDi[i][0] * vvDi[i+1][1] != vvDi[i][1] * vvDi[i+1][0] ) {
        return false;
      }
    }
    return true;
  }
};
